########### Code des fonctions d'"Etude de fonction" par Bisam ######## - Fonction Def: (ff,vr) cond(in2post(ff),vr) - Fonction Cond: (problème: valeur inconnue d'étiquette dans l'image de programme) - Fonction convert: (ll) Func Local i,n,p dim(ll)»n For i,1,n ord(ll[i])»p If pž1 and pœdim(fnc) fnc[p]»ll[i] EndFor ll EndFunc - Fonction in2parts: (problème: valeur inconnue d'étiquette dans l'image de programme) - Fonction ispart: (ex,vr) when(inString(makestr(ex),makestr(vr))=0,false,true,false) - Fonction makestr: (ex) when(getType(ex)"STR",string(ex),ex) - Fonction nbpart: (ex,vr) Func Local i,nb makestr(ex)»ex makestr(vr)»vr If vr="" Return 0 inString(ex,vr)»i 0»nb While i>0 mid(ex,i+dim(vr))»ex inString(ex,vr)»i nb+1»nb EndWhile EndFunc - Fonction nparts: (problème: valeur inconnue d'étiquette dans l'image de programme) - Fonction parts: (rpn,nb) Func Local i,n,k,p dim(rpn)»n If nb=0 Return {rpn[n]} 1»i n»k While i>0 k-1»k (i+nparts(left(rpn,k)))-1»i EndWhile If nb=1 and k>1 Then left(rpn,k-1) Else mid(rpn,k,n-k) EndIf EndFunc - Fonction post2in: (problème: valeur inconnue d'étiquette dans l'image de programme) - Fonction prior: (ch) Func If ch="ª" Then 6 ElseIf ord(ch)ž1 and ord(ch)œdim(fnc) Then 5 ElseIf ch="^" Then 4 ElseIf ch="*" or ch="/" Then 3 ElseIf ch="+" or ch="-" Then 2 ElseIf ch="(" or ch=")" Then 1 Else 0 EndIf EndFunc ################################ FIN ###############################